﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Tibet.Datos;
using Tibet.Logica.Excepciones;

namespace Tibet.Logica
{
    public class Rol
    {

        private String _nombre;
        private List<Privilegio> _privilegio;



        ///<summary>
        ///Descripción: Agrega un privilegio a la lista del rol
        ///</summary>
        public Boolean IngresarPrivilegio ( int privilegioAIngresar )
        {

            try
            {

                Privilegio privilegioObjetoNuevo = new Privilegio();

                privilegioObjetoNuevo.IdPantalla = privilegioAIngresar;

                _privilegio.Add( privilegioObjetoNuevo );

                return true;
            }

            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }

            return false;

        }



        ///<summary>
        ///Descripción: Devuelve la lista de privilegios
        ///</summary>
        public List<Privilegio> MostrarPrivilegio()
        {

            try
            {

                return this._privilegio;

            }

            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }

            return null;
        }
        
        
        
        ///<summary>
        ///Descripción: Get y Set del atributo _nombre
        ///</summary>
        public String Nombre
        {

            get { return _nombre; }
            set { _nombre = value; }

        }



        /// <summary>
        /// Constructor de la clase
        /// </summary>
        public Rol()
        {

            this._privilegio = new List<Privilegio> ();

        }
        


        ///<summary>
        ///Descripción: Método que valida el rol de un usuario
        ///</summary>
        public void ValidarRol()
        {
        }



        ///<summary>
        ///Descripción: Método para consultar un rol en la BD
        ///</summary>
        public void ConsultarRol()
        {

            try
            {

                ///Consulta en base de datos el rol del usuario

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }

        }

        /// <summary>
        /// metodo que encapusla el metodo de acceso de la base de datos que obtiene los roles
        /// </summary>
        /// <returns></returns>
        /* //Entidades.Rol da error
        public List<Entidades.Rol> ObtenerRoles()
        {
            AccesoRol accesoRol = new AccesoRol();
            return accesoRol.ObtenerRoles();
        }
         * */


        ///<summary>
        ///Descripción: Método para insertar un rol en la BD
        ///</summary>
        public void InsertarRol()
        {

            try
            {

                ///Consulta en base de datos si existe el cliente

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }
        
        }


        ///<summary>
        ///Descripción: Método para modificar un rol en la BD
        ///</summary>
        public void ModificarRol()
        {

            try
            {

                ///Consulta en base de datos si existe el cliente

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }

        }

    }


}